package com.fxkj.cloud.drms.domain.mqtt;

import com.fxkj.cloud.dbs.common.model.DeviceBasicInfo;
import com.fxkj.cloud.dbs.common.model.alarmItem.ProductAlarmItemCreate;
import com.fxkj.cloud.dbs.common.model.linkage.KvDTO;

import java.util.List;
import java.util.Set;

/**
 * <p>description: </p>
 * @author ww
 * @date 2025/3/25 10:28
 */
public interface CommandAndQuerySender {

    /**
     * 指令下发
     * @param commandDomain
     */
    void commandSend(CommandDomain commandDomain);

    /**
     * 指令下发
     * @param commandDomains
     */
    void commandSendBatch(List<CommandDomain> commandDomains);

    /**
     * 指令下发
     * @param deviceBasicInfo
     * @param kvs
     */
    void commandSend(DeviceBasicInfo deviceBasicInfo, List<KvDTO> kvs);

    /**
     * 查询下发
     * @param queryDomain
     */
    void querySend(QueryDomain queryDomain);

    /**
     * 设备控制计划下发
     * @param deviceControlOrderCommands
     */
    void controlPlanSend(List<DeviceControlOrderCommand> deviceControlOrderCommands);

    /**
     * 告警项设置
     * @param deviceSerialNos
     * @param productAlarmItemCreates
     */
    void alarmAttributeCreate( Set<String> deviceSerialNos, List<ProductAlarmItemCreate> productAlarmItemCreates);
}
